﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Dominio
{
    [Serializable()]
    public class BLUsuario
    {
        private String nombre;
        private String apellido;
        private String direccion;
        private String usuario;
        private String contraseña;
        private String telefono;
        private String email;
        public bool esAdmin
        {
            get;
            set;
        }
        public bool esGerente
        { get; set; }

        private List<BLReview> review;
        private BLCarritoCompra carrito;
        private List<BLCompra> compras;

        public BLUsuario()
        {
            review  = new List<BLReview>();
            carrito = new BLCarritoCompra();
            compras = new List<BLCompra>();
        }

        public String Nombre
        {
            get
            {
                return nombre;
            }
            set
            {
                nombre = value;
            }
        }

        public String Apellido
        {
            get
            {
                return apellido;
            }
            set
            {
                apellido = value;
            }
        }
        public String Direccion
        {
            get
            {
                return direccion;
            }
            set
            {
                direccion = value;
            }
        }
        public String Telefono
        {
            get
            {
                return telefono;
            }
            set
            {
                telefono = value;
            }
        }
        public String Usuario
        {
            get
            {
                return usuario;
            }
            set
            {
                usuario = value;
            }
        }
        public String Contraseña
        {
            get
            {
                return contraseña;
            }
            set
            {
                contraseña = value;
            }
        }

        public String Email
        {
            get
            {
                return email;
            }
            set
            {
                email = value;
            }
        }

        public List<BLCompra> getCompras()
        {
            return compras;
        }
        public List<BLReview> getReviews()
        {
            return review;
        }

        public BLCarritoCompra getCarritoCompra()
        {
            return carrito;
        }
        public void setCarritoCompra(BLCarritoCompra compra)
        {
            carrito = compra;
        }

        // override object.Equals
        public override bool Equals(object obj)
        {
            //       
            // See the full list of guidelines at
            //   http://go.microsoft.com/fwlink/?LinkID=85237  
            // and also the guidance for operator== at
            //   http://go.microsoft.com/fwlink/?LinkId=85238
            //

            if (obj == null || GetType() != obj.GetType())
            {
                return false;
            }

            // TODO: Hacer el equals para todos los parametros.
            else
                if (((BLUsuario)obj).Usuario == Usuario)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            //return base.Equals(obj);
        }

        // override object.GetHashCode
        public override int GetHashCode()
        {
            // TODO: write your implementation of GetHashCode() here
            return base.GetHashCode();
        }
    }
}
